Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. These techniques include solid modeling, wire-frame modeling, and surface modeling. Solid modeling techniques provide for topological 3D models, where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to the topological faces bounded by the edges. Wire-frame modeling techniques, on the other hand, can be used to represent a model as a collection of simple 3D lines, whereas surface modeling can be used to represent a model as a collection of exterior surfaces. CAD systems may combine these and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
CAD systems may also support two-dimensional (2D) objects, which are 2D representations of 3D objects. Two- and three-dimensional objects are useful during different stages of a design process. Three-dimensional representations of a model are commonly used to visualize a model in a physical context because a design engineer can manipulate the model in 3D space and can visualize the model from any conceivable viewpoint. Two-dimensional representations of a model are commonly used to prepare and formally document the design of a model.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
Parts, subassemblies, and assemblies can be quite complicated. A model that contains 10,000 parts is not uncommon. CAD models of agricultural vehicles, recreational vehicles, and some printer devices may likely have more than 10,000 parts. Some design engineers may wait up to thirty minutes for a CAD system to open a model and up to one minute for the completion of a basic operation, such as dragging a part on the computer screen from one location to another, highlighting a part, or mating two components. The more complex a model is (e.g., the greater the number of parts), the greater the load on the CAD system. The length of time taken to generate a component is a function of a number of factors, including the configuration of the computer system on which the modeling application runs. The amount of memory and the speed of the hardware processors installed on the computer system affect the performance of the modeling application. Additionally, the level of detail of the component being generated and the functionality that can be supported by the component influence the performance of the modeling application because both affect the amount of data that is stored, loaded, and processed.
To increase performance, current state-of-the-art systems may not load all the details of a model, may limit supported functionality, may add more memory, may enhance processor performance, or may increase performance by a combination thereof. For example, many design engineers use powerful mainframe computers to attain acceptable performance from a CAD system.
Also affecting performance is the necessity of updating all or a significant portion of a model anytime a modification is made to any supporting data structure of that model. Some modeling applications simply regenerate all data structures after any modification is made to the model. However, many state-of-the-art modeling applications do keep track of related data structures so that when a data structure is modified the modeling application can then locate related data structures and modify those data structures if necessary. Thus, for example, when a data structure is modified, a related data structure can be analyzed or operated upon to ensure that the related data structure is updated if needed.
Modeling applications, in general, do not have a standard or uniform storage scheme for keeping track of related data structures. Furthermore, tracking information may often be dispersed throughout a CAD modeling application. The lack of a standard storage scheme for tracking data may affect performance. For example, locating and gathering tracking information may be time-consuming when different procedures need to be invoked to retrieve data initially stored in various ways.
Time-saving advantages can be obtained by balancing memory usage, file loading time, level of detail of the design information, and a range of supported operations. However, utilizing an automated technique that provides an efficient means of updating a three-dimensional model by balancing various attributes of a computerized modeling system can enhance state of the art CAD systems.